package com.springboot.erp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jsh_depot_head") // 仓库主表，存储订单基础信息
public class Order {
    // 订单ID
    @TableId(type = IdType.AUTO)
    private Long id;

    // 组织简称（关联jsh_organization表）
    @TableField(exist = false)
    private String orgAbr;

    // 订单编号
    @Size(max = 50, message = "订单编号长度不能超过50")
    private String number;


    // 订单日期
    private Date createTime;

    // 状态
    @Size(max = 1, message = "状态长度不能超过1")
    private String status;
 
    // 订单总额
    private BigDecimal totalPrice;

    // 操作员名称（关联jsh_person表）
    @TableField(exist = false)
    private String operatorName;

    // 数量（关联jsh_depot_item表）
    @TableField(exist = false)
    private BigDecimal operNumber;

    // 含税总金额（关联jsh_depot_item表）
    @TableField(exist = false)
    private BigDecimal taxLastMoney;

    // 商品信息
    @TableField(exist = false)
    private String productName;

    // 备注
    @Size(max = 1000, message = "备注长度不能超过1000")
    private String remark;

    // 用于级联更新的旧ID
//    @TableField(exist = false)
//    private Long oldId;

    // 物料ID（关联jsh_depot_item表）
    @TableField(exist = false)
    private Long materialId;

    // 客户ID
    private Long organId;

    // 创建人ID
    private Long creator;

    // 更新时间
    private Date operTime;
}